A tuple space is a repository of tuples designed to support the associative memory paradigm commonly referred to as the Blackboard Metaphor. A tuple space coordinates producers and consumers via a publish and subscribe mechanism—producers publish entries to a tuple space and consumers receive notifications of tuples matching their subscription. Implementations generally support a query by template mechanism which supports matching of entries in a space against subscriptions by concept. Tuple space query languages have been developed to support more sophisticated matching of entries against subscriptions.
A business rules engine 76 is a matching system that finds combinations of facts in working memory that satisfy conditions within rules. A business rules engine 76 is generally composed of a rule base or rule repository for storing rules and a working memory for storing facts, and for storing partial matches of facts against rules. A commercial business rules engine will frequently support the definition of ‘domain specific languages’ which allow business experts to configure and manage rules.
An expression language is the common term for a programming or scripting language within which expressions may be composed and evaluated within some context. Expression languages (EL) commonly have an evaluation function of the form <Expression>.evaluate(<context>), where <Expression> is an object representation of an Expression and where <context> is an object representation of a container within which the expression will look for and manipulate variable bindings.